package cn.itsource.pethome.basic.mapper;
import cn.itsource.pethome.basic.query.BaseQuery;

import java.util.List;

/**
 * @description: 描述:
 * @date: 2020/8/10 9:46
 * @author: summer
 * version: 1.0
 */

public interface BaseMapper<T> {

    /**
     * 功能描述: 基础 添加数据
     * @param t
     * @return: void
     * @Date: 2020/8/4
     */
    void save(T t);

    /**
     * 功能描述: 修改数据
     * @param t
     * @return: void
     * @Date: 2020/8/4
     */
    void update(T t);

    /**
     * 功能描述: 根据id删除数据
     * @param id
     * @return: void
     * @Date: 2020/8/4
     */
    void delete(Long id);

    /**
     * 功能描述: 根据id查询单个数据对象
     * @param id
     * @return: cn.itsource.pethome.org.domain.Department
     * @Date: 2020/8/4
     */
    T loadById(Long id);

    /**
     * 功能描述: 根矩条件查询整个列表
     * @param
     * @return: java.util.List<cn.itsource.pethome.org.domain.Department>
     * @Date: 2020/8/4
     */
    List<T> loadAll(BaseQuery baseQuery);

    /**
     * 功能描述: 统计满足条件的数据列表
     * @param baseQuery
     * @return: java.lang.Long
     * @Date: 2020/8/8
     */
    Long findCountAll(BaseQuery baseQuery);

    /**
     * 功能描述: 根据id，批量删除数据列表
     * @param ids
     * @return: void
     * @Date: 2020/8/8
     */
    void batchDel(Long[] ids);

    /**
     * 功能描述: 查询所有数据
     * @param
     * @return: java.util.List<cn.itsource.pethome.org.domain.Department>
     * @Date: 2020/8/8
     */
    List<T> findDepartment();
}
